home *** CD-ROM | disk | FTP | other *** search
Wrap
(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=Ketchup (<link>ketchuppp@wp.pl</link>) Title=Stereo.pl Description=Movie information & picture importation Site=http://stereo.pl/ Language=PL Version= Requires=3.5.0 Comments= based on script 'Filmweb (PL) small pic.ifs'| by Piotr Kardasz & Adma's| Tlen Rulezzzzzzzzzzzz| License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. | GetInfo=1 [Options] ***************************************************) program Stereo; var MovieName, AdressTemp: string; function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer; var i: Integer; begin result := -1; if StartAt < 0 then StartAt := 0; for i := StartAt to List.Count-1 do if Pos(Pattern, List.GetString(i)) <> 0 then begin result := i; Break; end; end; procedure DelSpace(var Value: String); var FullValue: String; Counter: Integer; begin if Value <> '' then begin FullValue := FullValue + StrGet(Value, 1); for Counter := 2 to Length(Value) do begin if StrGet(Value, Counter) <> ' ' then FullValue := FullValue + StrGet(Value, Counter) else if StrGet(FullValue, Length(FullValue)) <> ' ' then FullValue := FullValue + ' '; end; Value := FullValue; end end; procedure DecodeHTML(var Value: String); var FullValue, CharCode: String; Counter: Integer; begin if Value <> '' then begin FullValue := ''; Counter := 1; repeat if StrGet(Value, Counter) <> '&' then begin CharCode := copy(Value, Counter, 1); case CharCode of '▒': CharCode := '╣'; '╢': CharCode := '£'; 'í': CharCode := 'Ñ'; '╝': CharCode := 'ƒ'; 'ª': CharCode := 'î'; '¼': CharCode := 'Å'; end; FullValue := FullValue + CharCode; Counter := Counter + 1; end else begin CharCode := copy(Value, Counter, 7); case CharCode of 'ą': FullValue := FullValue + '╣'; 'ć': FullValue := FullValue + 'µ'; 'ę': FullValue := FullValue + 'Ω'; 'ł': FullValue := FullValue + '│'; 'ń': FullValue := FullValue + '±'; 'ó': FullValue := FullValue + '≤'; 'ś': FullValue := FullValue + '£'; 'ź': FullValue := FullValue + 'ƒ'; 'ż': FullValue := FullValue + '┐'; 'Ą': FullValue := FullValue + 'Ñ'; 'Ć': FullValue := FullValue + '╞'; 'Ę': FullValue := FullValue + '╩'; 'Ł': FullValue := FullValue + 'ú'; 'Ń': FullValue := FullValue + '╤'; 'Ó': FullValue := FullValue + '╙'; 'Ś': FullValue := FullValue + 'î'; 'Ź': FullValue := FullValue + 'Å'; 'Ż': FullValue := FullValue + '»'; 'Š': FullValue := FullValue + ' '; 'š': FullValue := FullValue + 'í'; 'Ţ': FullValue := FullValue + 'í'; 'ţ': FullValue := FullValue + 'ú'; 'Ť': FullValue := FullValue + 'ñ'; 'ť': FullValue := FullValue + 'Ñ'; 'Ŧ': FullValue := FullValue + 'î'; 'ŧ': FullValue := FullValue + 'º'; 'Ũ': FullValue := FullValue + '¿'; 'ũ': FullValue := FullValue + '⌐'; 'Ű': FullValue := FullValue + '¬'; 'ű': FullValue := FullValue + '½'; 'Ų': FullValue := FullValue + '¼'; 'ų': FullValue := FullValue + '¡'; 'Ŵ': FullValue := FullValue + '«'; 'ŵ': FullValue := FullValue + '»'; 'Ŷ': FullValue := FullValue + '░'; 'ŷ': FullValue := FullValue + '▒'; 'Ÿ': FullValue := FullValue + '▓'; 'ƀ': FullValue := FullValue + '┤'; 'Ɓ': FullValue := FullValue + '╡'; 'Ƃ': FullValue := FullValue + '╢'; 'ƃ': FullValue := FullValue + '╖'; 'Ƅ': FullValue := FullValue + '╕'; 'ƅ': FullValue := FullValue + '╣'; 'Ɔ': FullValue := FullValue + '║'; 'Ƈ': FullValue := FullValue + '╗'; 'ƈ': FullValue := FullValue + '╝'; 'Ɖ': FullValue := FullValue + '╜'; 'Ɛ': FullValue := FullValue + '╛'; 'Ƒ': FullValue := FullValue + '┐'; 'ƒ': FullValue := FullValue + '└'; 'Ɠ': FullValue := FullValue + '┴'; 'Ɣ': FullValue := FullValue + '┬'; 'ƕ': FullValue := FullValue + '├'; 'Ɩ': FullValue := FullValue + '─'; 'Ɨ': FullValue := FullValue + '┼'; 'Ƙ': FullValue := FullValue + '╞'; 'ƙ': FullValue := FullValue + '╟'; 'Ȁ': FullValue := FullValue + '╚'; 'ȁ': FullValue := FullValue + '╔'; 'Ȃ': FullValue := FullValue + '╩'; 'ȃ': FullValue := FullValue + '╦'; 'Ȅ': FullValue := FullValue + '╠'; 'ȅ': FullValue := FullValue + '═'; 'Ȇ': FullValue := FullValue + '╬'; 'ȇ': FullValue := FullValue + '╧'; 'Ȉ': FullValue := FullValue + '╨'; 'ȉ': FullValue := FullValue + '╤'; 'Ȑ': FullValue := FullValue + '╥'; 'ȑ': FullValue := FullValue + '╙'; 'Ȓ': FullValue := FullValue + '╘'; 'ȓ': FullValue := FullValue + '╒'; 'Ȕ': FullValue := FullValue + '╓'; 'ȕ': FullValue := FullValue + '╫'; 'Ȗ': FullValue := FullValue + '╪'; 'ȗ': FullValue := FullValue + '┘'; 'Ș': FullValue := FullValue + '┌'; 'ș': FullValue := FullValue + '█'; 'Ƞ': FullValue := FullValue + '▄'; 'ȡ': FullValue := FullValue + '▌'; 'Ȣ': FullValue := FullValue + '▐'; 'ȣ': FullValue := FullValue + '▀'; 'Ȥ': FullValue := FullValue + 'α'; 'ȥ': FullValue := FullValue + 'ß'; 'Ȧ': FullValue := FullValue + 'Γ'; 'ȧ': FullValue := FullValue + 'π'; 'Ȩ': FullValue := FullValue + 'Σ'; 'ȩ': FullValue := FullValue + 'σ'; 'Ȱ': FullValue := FullValue + 'µ'; 'ȱ': FullValue := FullValue + 'τ'; 'Ȳ': FullValue := FullValue + 'Φ'; 'ȳ': FullValue := FullValue + 'Θ'; 'ȴ': FullValue := FullValue + 'Ω'; 'ȵ': FullValue := FullValue + 'δ'; 'ȶ': FullValue := FullValue + '∞'; 'ȷ': FullValue := FullValue + 'φ'; 'ȸ': FullValue := FullValue + 'ε'; 'ȹ': FullValue := FullValue + '∩'; 'ɀ': FullValue := FullValue + '≡'; 'Ɂ': FullValue := FullValue + '±'; 'ɂ': FullValue := FullValue + '≥'; 'Ƀ': FullValue := FullValue + '≤'; 'Ʉ': FullValue := FullValue + '⌠'; 'Ʌ': FullValue := FullValue + '⌡'; 'Ɇ': FullValue := FullValue + '÷'; 'ɇ': FullValue := FullValue + '≈'; 'Ɉ': FullValue := FullValue + '°'; 'ɉ': FullValue := FullValue + '∙'; 'ɐ': FullValue := FullValue + '·'; 'ɑ': FullValue := FullValue + '√'; 'ɒ': FullValue := FullValue + 'ⁿ'; 'ɓ': FullValue := FullValue + '²'; 'ɔ': FullValue := FullValue + '■'; 'ɕ': FullValue := FullValue + ' '; '%DF;': FullValue := FullValue + '▀'; '4': FullValue := FullValue + '"'; else FullValue := FullValue + CharCode; end; Counter := Counter + 7; end; until Counter > Length(Value); HTMLDecode(FullValue); Value := FullValue; end end; procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer); var Line: string; MovieTitle, MovieAddress,temp: string; StartPos, EndPos: Integer; begin LineNr := FindLine('kam.gif', Page, LineNr); if LineNr > -1 then begin PickTreeAdd('Znaleziono filmy:', ''); Line := Page.GetString(LineNr+1); repeat repeat StartPos := pos('tytul_m href="', Line) + 14; Line := copy(Line, StartPos, Length(Line) - StartPos); MovieAddress := copy(Line, 1, pos('">', Line) - 1); StartPos := pos('">', Line) + 2; Line := copy(Line, StartPos, Length(Line) - StartPos); MovieTitle := copy(Line, 1, pos('</a>', Line) - 1); DecodeHTML(MovieTitle); HTMLRemoveTags(MovieTitle); PickTreeAdd(MovieTitle, 'http://piwnicapodbaranami.stereo.pl/' + MovieAddress); until pos('tytul_m href="', Line) = 0; LineNr := LineNr + 1; LineNr := FindLine('kam.gif', Page, LineNr); Line := Page.GetString(LineNr+1); until LineNr < 0; end else break; end; procedure AnalyzePage(Address: string); var Page: TStringList; LineNr: Integer; begin Page := TStringList.Create; AdressTemp := Address; Page.Text := GetPage(Address); if pos('Wyniki wyszukiwania', Page.Text) = 0 then AnalyzeMoviePage(Page) else begin PickTreeClear; LineNr := 0; AddMoviesTitles(Page, LineNr); if PickTreeExec(Address) then AnalyzePage(Address); end; Page.Free; end; procedure AnalyzeMoviePage(Page: TStringList); var Line, Value, FullValue, LineTemp, ValueTemp: string; LineNr, Counter, Temp: Integer; StartPos, EndPos, i: Integer; begin Temp := 0; // Tytu│ polski LineNr := FindLine('class=tytul', Page, 0); if LineNr > -1 then begin Temp := 1; Line := Page.GetString(LineNr); LineTemp := Line; StartPos := pos('<i>', Line) + 3; Line := copy(Line, StartPos, Length(Line) - StartPos); StartPos := pos(' - [', Line); if StartPos > 0 then Value := copy(Line, 1, StartPos - 1) else begin StartPos := pos(' (', Line); if StartPos > 0 then Value := copy(Line, 1, StartPos - 1) else begin StartPos := pos('<br>', Line); Value := copy(Line, 1, StartPos - 1); end end ValueTemp := Value; DecodeHTML(Value); HTMLRemoveTags(Value); SetField(fieldTranslatedTitle, Value); end // Tytu│ oryginalny if Temp = 1 then begin Line := LineTemp; StartPos := pos(' (', Line); if StartPos > 0 then begin Line := copy(Line, StartPos + 2, Length(Line) - StartPos - 2); StartPos := pos(')', Line); Value := copy(Line, 1, StartPos - 1); StartPos := pos('-', Value); if StartPos > 0 then Value := copy(Value, 1, StartPos - 1); end else begin Value := ValueTemp; end DecodeHTML(Value); HTMLRemoveTags(Value); SetField(fieldOriginalTitle, Value); end // Rok produkcji LineNr := FindLine('Rok premiery:', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); StartPos := pos('Rok premiery:', Line) + 14; Line := copy(Line, StartPos, Length(Line) - StartPos); StartPos := pos('<BR>', Line); Value := copy(Line, 1, StartPos - 1); SetField(fieldYear, Value); end // Re┐yseria LineNr := FindLine('Re┐yseria:', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr + 3); StartPos := pos('artysta.php', Line) + 11; Line := copy(Line, StartPos, Length(Line) - StartPos); StartPos := pos('">', Line) + 2; Line := copy(Line, StartPos, Length(Line) - StartPos); StartPos := pos('<', Line); Value := copy(Line, 1, StartPos - 1); HTMLRemoveTags(Value); DecodeHTML(Value); SetField(fieldDirector, Value); end // Producent LineNr := FindLine('Wydawca:', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); StartPos := pos('Wydawca: ', Line) + 9; Line := copy(Line, StartPos, Length(Line) - StartPos); StartPos := pos(' <br>', Line); Value := copy(Line, 1, StartPos - 2); HTMLRemoveTags(Value); DecodeHTML(Value); SetField(fieldProducer, Value); end // Czas trwania LineNr := FindLine('ú▒czny czas:', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); StartPos := pos('ú▒czny czas:', Line) + 13; Line := copy(Line, StartPos, Length(Line) - StartPos); StartPos := pos('min.', Line); Value := copy(Line, 1, StartPos - 2); SetField(fieldLength, Value); end // Opis filmu LineNr := FindLine('Opis:', Page, 0); if StartPos > 0 then begin Line := Page.GetString(LineNr); StartPos := pos('Opis:', Line); Delete(Line, StartPos, 5); StartPos := pos('</ul>', Line); if StartPos > 0 then begin Delete(Line, StartPos, 5); Insert(#13#10, Line, StartPos); end repeat StartPos := pos('<li>', Line); if StartPos > 0 then begin Delete(Line, StartPos, 4); Insert(#13#10 + '-', Line, StartPos); end until StartPos = 0; StartPos := pos('Dodatki:', Line); if StartPos > 0 then Line := copy(Line, 1, StartPos - 1); HTMLRemoveTags(Line); DecodeHTML(Line); DelSpace(Line); SetField(fieldDescription, Line); end // Obsada LineNr := FindLine('WystΩpuj', Page, 0); i := 3; Value := ''; if LineNr > -1 then begin repeat Line := Page.GetString(LineNr + i); StartPos := pos('artysta.php', Line) + 11; Line := copy(Line, StartPos, Length(Line) - StartPos); StartPos := pos('">', Line) + 2; Line := copy(Line, StartPos, Length(Line) - StartPos); StartPos := pos('<', Line); Value := Value + copy(Line, 1, StartPos - 1) + ', '; i := i + 2; until pos('artysta.php', Page.GetString(LineNr + i)) = 0; Value := copy(Value, 1, Length(Value) - 2); HTMLRemoveTags(Value); DecodeHTML(Value); SetField(fieldActors, Value); end //URL begin setField(fieldURL, AdressTemp); end //Foto LineNr:= FindLine('okladka.php', Page, 0); if LineNr > -1 then begin Line:= Page.GetString(LineNr); StartPos:= Pos('okladka.php', Line); Line := copy(Line, StartPos, Length(Line) - StartPos); EndPos:=Pos(#39#44, Line) - 1; Line:= Copy(Line, 1, EndPos); Value:= 'http://piwnicapodbaranami.stereo.pl/' + Line; Page.Text := GetPage(Value); LineNr:= FindLine('<img src="', Page, 0); if LineNr > -1 then begin Line:= Page.GetString(LineNr); StartPos:= Pos('<img src="', Line) + 11; Line := copy(Line, StartPos, Length(Line) - StartPos); EndPos:=Pos('">', Line) - 1; Line:= Copy(Line, 1, EndPos); Value:= 'http://piwnicapodbaranami.stereo.pl/' + Line; end GetPicture(Value); // False = nie przechowuj zdjΩcia na zewnΩtrz ; przechowuj w pliku katalogu end //DisplayResults; end; begin if CheckVersion(3,5,0) then begin MovieName := GetField(fieldOriginalTitle); if MovieName = '' then MovieName := GetField(fieldTranslatedTitle); if Input('FilmWeb Import', 'Podaj tytu│ filmu:', MovieName) then begin AnalyzePage('http://piwnicapodbaranami.stereo.pl/most.php?szuk='+UrlEncode(MovieName)); end; end else ShowMessage('Skrypt wymaga programu Ant Movie Catalog w wersji 3.5.0 lub nowszej'); end.